                                DIO Interpreter
                               Alapvet parancsok

==================== Megjegyzs ===========================================

Rvidtsek s jellsek:

  * (val)  : Tetszleges tpus
  * (str)  : String
  * (num)  : Egsz szm
  * (real) : Vals szm
  * Egsz szmok 32 bitesek (cmeket is belertve)
  * Vals szmok 64 bitesek
  * Ret : Parancs visszatrsi rtke

==================== Alap =================================================

Vge: {\!}

Kirtkelsi vezrlse: {%.|%+|%-|%!|%?}[{<num>}]
  .   : Kirtkelsi szint mdostsa
        <num> : Nvekmny rtke (num); default:0
  +   : Minden parancs rvnyes
        (kirtkels engedlyezett md)
        <num> : Kirtkelsi szint rtke (num); default:0
  -   : Csak a kirtkelst vezrl parancsok rvnyesek
        (kirtkels tiltott md)
        <num> : Kirtkelsi szint rtke (num); default:-1
  !   : Kvetkez parancs vgrehajtsa, brmely mdban
  ?   : Kirtkelsi md lekrdezse (>=0:engedlyezett,<0:tiltott)
  Ret : {%?} : Kirtkelsi szint

String beszrsa: {(?|.)[%]}{<str>}[{<par1>}...]
  ?      : Beszrt string jbli kirtkelssel
  .      : Beszrt string jbli kirtkels nlkl
  %      : Paramter helyettests nlkl
  <str>  : Beszrand string (str)
  <parX> : Paramterek (str)
  Paramter nevek az rtken bell:
    {^N}      : Az N. paramter
    {^?}      : Paramterek szma
    {^*[,|"]} : Paramterek listja, belertve a <nam>-t is
    {^+[,|"]} : Paramterek listja, de a <nam> nincs kzttk
    {^-[,|"]} : Paramterek listja, de nincs kzttk sem a <nam>
                sem pedig az els paramter
    {^/}      : Paramter helyettests engedlyezse (jell trlve)
    {^\}      : Paramter helyettests tiltsa (jell trlve)
  , : Paramterek kapcsos zrjelek kztt
  " : Paramterek kapcsos zrjelek s (") jelek kztt
  Minden dupla (^) jel ki lesz cserlve egy (^) jelre.
  Minden egyszeres (^) jel trlve lesz.

Karakter beszrsa: {\}[{<char>}]
  <char> : Karakter szma (num)
           (default:$)

String trlse: {_>}{<str>}
  <str> : Trlend string (val)

Trls adott helyen: {_:}{<pos>}{<len>}
  <pos> : Pozci (num)
  <len> : Hossz (num)

Feltteles kirtkels: {?=|?~}{<str1>}{<str2>}[{<true>}{<false>}[{_}]]
  A kvetkez blokk csak akkor lesz vgrehajtva, ha a felttel
  rtke IGAZ (3 paramter esetn).
  =       : Egyenl
  ~       : Nem egyenl
  <str1>  : 1. String (str)
  <str2>  : 2. String (str)
  <true>  : Az eredmny rtk ha a felttel igaz
  <false> : Az eredmny rtk ha a felttel hamis
  _       : Parancs fellrsa az eredmnnyel
  Ret     : Az eredmny rtk ha a parancs 5 paramteres (str)

Blokk ugrs: {..}[{_}]
  A kvetkez blokk utnra ugrik
  _ : Parancs trlse

Kirtkels ciklusban: {??}{<val>}{<str>}
  Parancs kirtkelse mindaddig, amg <val> nem 0 vagy NULL.
  <val> : Vizsgland rtk
  <str> : Kirtkelend string

String keresse: {?<|?>}{<str1>}[{<str2>}]
  <      : Keress htrafele
  >      : Keress elre
  <str1> : Keresend string eleje (str)
  <str2> : Keresend string vge (str)
  Ret    : Pozci (num)

Ugrs: {:}{<pos>}[{_}]
  <pos> : Ugrs pozcija (num)
  _     : Parancs trlse

Fggvny hvs: {@>}{<pos>}[{<par1>}...]
  <pos>  : Fggvny pozicija (num)
  <parX> : Paramterek (val)
  Ret    : Fggvny visszatrsi rtke (val)
  Automatikus loklis rtkek a fggvnyen bell:
    {^N} : Az N. paramter
    {^?} : Paramterek szma

Fggvny hvs paramter tmbbel: {@:}{<pos>}{<pars>}
  <pos>  : Fggvny pozicija (num)
  <pars> : Paramter tmb neve (str)

Fggvnybl visszatrs: {@<}[{<val>}]
  <val> : Visszatrsi rtk (val)

rtk hozzadsa a paramter tmbhz: {@+}{<nam>}{<val>}
  <nam> : Paramter tmb neve (str)
  <val> : Hozzadand rtk (val)

Paramterek hozzadsa a paramter tmbhz: {@+}{<nam>}{<pos>}{<cnt>}
  <nam> : Paramter tmb neve (str)
  <pos> : Hozzadand els paramter (num)
  <cnt> : Paramterek szma (num)

Egyebek: {#|%|+}{<val1>}[{<val2>}...]
  #      : Az rtk hossza
  %      : Utols rtk
  +      : rtkek sszefzse
  <valX> : Tetszleges rtkek (val)
  Ret    : Fentiek kzl

Egyebek 2.: {+=}{<nam>}{<val1>}[{<val2>}...]
  +=     : rtkhez hozzfzs
  <nam>  : Nv (str)
  <valX> : Tetszleges rtkek (val)
  Ret    : Fentiek kzl

Parancs buffer info: {&|^|#|=}
  &     : Buffer cme
  ^     : Maximlis buffer mret
  #     : Aktulis buffer mret
  =     : Aktulis buffer pozci
  Ret   : Fentiek kzl

Explicit visszatrsi rtk: {##}{<adr>{<len>}
 <adr> : Visszatrsi rtk cme (num)
 <len> : Visszatrsi rtk hossza (num)
 Ret   : A paramterekkel meghatrozott rtk

==================== rtk ================================================

rtk hozzadsa: {<nam>}{:[~]}{<val>}[{<mLen>}[{<vLen>}]]
  ~      : Loklis rtk (automatikus trlssel)
  <nam>  : Nv (str)
  <val>  : rtk (val)
  <mLen> : Maximlis rtk hossz (num)
  <vLen> : Aktulis rtk hossz (num)

rtk trlse: {~}{<nam>}
  <nam>  : Nv (str)

rtk lekrdezse: {*}{<nam>}
  <nam> : Nv (str)
  Ret   : Nv rtke (val)

Makro lekrdezse: {*?}{<nam>}
  <nam> : Nv (str)
  Ret   : Nv rtke paramter helyettestssel (val)

rtk megadsa: {<nam>}{=}{<val>}
  <nam> : Nv (str)
  <val> : Az j rtk (val)

Hossz lekrdezse/megadsa: {<nam>}{#}[{<len>}]
  <nam> : Nv (str)
  <len> : j hossz (num)
  Ret   : Rgi hossz (num)

Max. hossz lekrdezse: {^}{<nam>}
  <nam> : Nv (str)
  Ret   : Max. hossz (num)

Rszrtk lekrdezse/megadsa:
{**}{<nam>}{<ofs>}{<idx>}{<len>}[{=}{<val>}]
  <nam> : Nv (str)
  <ofs> : Ofszet (num)
  <idx> : Index (num)
  <len> : Elem mret (num)
  <val> : j rszrtk (val)
  Ret   : Rszrtk (val)

rtk DB betltse: {%<}{<fnam>}
  <fnam> : Filename (str)

rtk DB ments: {%>}{<fnam>}[{'<'<from>}][{'>'<to>}]
  <fnam> : Filename (str)
  <from> : Els rtk neve (str)
  <to>   : Utols rtk neve (str)

==================== talakts s I/O ====================================

String talaktsa egsz szmmra: {#<}{<str>}
  <str> : String (str)
  Ret   : Egsz szm (num)

Egsz szm talaktsa stringre:
{#>}{<num>}[{[<|>][-|+][@][b|d|h|x]}[{<len1>}[{<len2>}]]]
  Formatum jellk:
    < : Balra igaztott
    > : Jobbra igaztott
    - : Eljeles szm
    + : Eljel mindig
    @ : Szmrendszer prefix kijelzse
    b : 2-esalap
    d : 10-es alap
    h : 16-os alap
    x : 16-os alap
  <num>  : Egsz szm (num)
  <len1> : Szmjegyek szma (num)
  <len2> : String hossza (num)
  Ret    : String (str)

String talaktsa vals szmra: {.<}{<str>}
  <str> : String (str)
  Ret   : Vals szm (real)

Vals szm talaktsa stringre:
{.>}{<num>}[{[.|E][<|>][+][!][;[' ']]}[{<len1>}[{<len2>}]]]
  Formatum jellk:
    .   : Fixpontos szm formtum
    E   : Normalizlt szm formtum
    +   : Eljel mindig
    <   : Balra igaztott
    >   : Jobbra igaztott
    !   : sszes tizedes jegy
    ;   : Ezres csoportok elvlasztsa
    ' ' : Ezres csoportokat elvlaszt jel a helykz
  <num>  : Vals szm (real)
  <len1> : Szmjegyek szma (num)
  <len2> : String hossza (num)
  Ret    : String (str)

String kirsa a konzolra: {<<}{<str>}
  <str> : String (str)

String beolvassa a konzolrl: {>>}{<nam>}
  <nam> : A string neve (str)
  Ret   : String hossza (num)

==================== VP ===================================================

Rendszer hvs: {@@#}{<sys>}[{<par1>}...]
  <sys>  : Rendszer hvs szma (num)
  <parX> : Paramterek (num)
  Ret    : Rendszer hvs visszatrsi rtke (num)

VP elksztse: {@@:}{<mem>}{<fn>}[{<par1>}...]
  <mem>  : Memria mrete a VP szmra (num)
  <fn>   : Fggvny neve (str)
  <parX> : Paramterek (num)

VP hvsa: {@@*|@@+}
  *   : Futs
  +   : Lps
  Ret : Futs  : A hvott fggvny visszatrsi rtke, ha
                 az normlisan lefutott, klnben -1 (num)
        Lps : 1 ha a fggvny mg nem rt vget, klnben 0 (num)

VP llapotnak lekrdezse/megadsa: {@@>|@@<}{<ps>}
  <ps> : VP llapotnak, mint rtknek a neve (str)

Jelents a VP llapotrl: {@@?}{<ps>}
  <ps> : VP llapotnak, mint rtknek a neve (str)

DIO krnyezetnek a lekrdezse: {%%}{<env>}
  <env>  : DIO krnyezetnek, mint rtknek a neve (str)
  Krnyezet formtuma:
  * 0 : Processzor tpusa (num)
  * 1 : Opercis rendszer tpusa (num)
  * 2 : DIO megvalstsnak tpusa (num)
  * 3 : Mutat az rtelemz lerjra

==================== Hiba keress =========================================

Aktulis kirtkelsi szint megszaktsa s egy j indtsa:
{\+}{<fnam1>}{<fnam2>}{<val>}[{!}][{?}]
  !       : Az j bemenet nyomonkvetse
  ?       : A visszatrsi buffer tartalom elmentse
  <fnam1> : Bemeneti llomny neve (str)
            Konzol bemenethez: "."
  <fnam2> : Kimeneti llomny neve (str)
            Konzol kimenethez: "."
  <val>   : Kezdeti buffer tartalom

Elz kirtkelsi szint visszalltsa: {\-}[{!}]
  !      : Visszalltott bemenet nyomonkvetse

==================== Default ==============================================

{<nam>}[{<par1>}{<par2>}...]
* gy mkdik, mint a "String beszrsa", de elszr a <nam> nevet kicserli
  az rtkvel.
* A kirtkels mdjt explicit mdon meg lehet hatrozni (lsd eval.txt).
* A default rtket meg lehet vltoztatni a <Val/Def> rtkvel.
* A nv pozicijt ugyancsak meg lehet adni (lsd eval.txt).

===========================================================================
